# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
import codecs

from itemadapter import ItemAdapter

import json,os
import time
import logging
logger = logging.getLogger(__name__)
class MyspiderPipeline:

    def process_item(self, item, spider):
        # lines= json.dumps(dict(item),ensure_ascii=False)+"\n"
        # 判断这个title文件是否存在,如果存在就在里面新建章节的文本 ,如果不存在,新建一个文件夹 ,再在里面新建章节的文本
        if item['title']:     #小说明存在
            nake = item['title']
            if not os.path.exists('./'+nake):            #不存在小说的文件夹
                time.sleep(1)
                os.mkdir('./'+nake+'/')

                if item['gailan']:     # 如果有概览 ,就创建一个概览的文件夹
                    os.mkdir('./' + nake + '/'+item['gailan']+"/")
                    time.sleep(1)

                    if not os.path.exists('./'+nake+'/'+item['gailan']+"/"+item['wzbt']+ '.txt'):      # 小说的章节 ,如果这个章节的文件不存在,就出创建一个新的
                        file_path = './'+nake+'/'+item['gailan']+"/"+item['wzbt']+ '.txt'
                        file = open(file_path, 'w')
                        file.write(item['title']+"\n")
                        file.write(item['zj_url']+"\n")
                        file.write(item['content']+"\n")
                        file.close()

                else:
                    if not os.path.exists('./'+nake+'/'+item['wzbt']+ '.txt'):      # 小说的章节 ,如果这个章节的文件不存在,就出创建一个新的
                        file_path = './'+nake+'/'+item['wzbt']+ '.txt'
                        file = open(file_path, 'w')
                        file.write(item['title']+"\n")
                        file.write(item['zj_url']+"\n")
                        file.write(item['content']+"\n")
                        file.close()

            else:
                logger.info("#存在小说文件夹")
                if item['gailan']:     #概览在item中
                    if not os.path.exists('./'+nake+'/'+item['gailan']+"/"):      # 小说的章节 ,如果这个章节的文件不存在,就出创建一个新的
                        gailan_path = './' + nake + '/' + item['gailan'] + "/"
                        os.mkdir(gailan_path)

                        file_path = './'+nake+'/'+item['gailan']+"/"+item['wzbt']+ '.txt'

                        logging.info("小说的章节 写入到章节下")
                        file = open(file_path, 'w+')
                        file.write(item['title']+"\n")
                        # file.write(item['zj_url']+"\n")
                        file.write(item['content']+"\n")
                        file.close()
                    else:

                        logging.info("已经存在这个文件夹了,准备写入")
                        file_path = './' + nake + '/' + item['gailan'] + "/" + item['wzbt'] + '.txt'

                        file = open(file_path, 'a+')
                        # file.write(item['title'] + "\n")
                        # file.write(item['zj_url'] + "\n")
                        file.write(item['content'] + "\n")
                        file.close()

                elif    not os.path.exists('./'+nake+'/' + item['wzbt']+'.txt'):  # 小说的章节 ,如果这个章节的文件不存在,就出创建一个新的
                    logger.info("MEIYOU 小说的章节")

                    file_path = './'+nake+'/' + item['wzbt'] + '.txt'
                    file = open(file_path, 'a+')
                    file.write(item['title']+"\n")

                    file.write(item['content']+"\n")
                    file.close()



        # self.file.write(lines)
        return item
